package ru.avn.devtool4j.spi.writers;

import java.lang.reflect.Modifier;

import ru.avn.devtool4j.spi.types.ClassType;


public interface ClassWriter {

	public ClassWriter setPackage(String packageName);
	public ClassWriter addImport(String i);
	public ClassWriter addImports(String[] imports);
	public ClassWriter createClassBody(String className);
	public ClassWriter createClassBody(String className, ClassType classType);
	public ClassWriter createClassBody(String className, ClassType classType, int[] modifiers);
	public FieldWriter addNewField();
	public MethodWritter addNewMethod();
	
	public <T> T build(Class<T> requiredClass);
	public Class<?>[] supportedResultTypes();
}
